計算システムの基盤的な設計は、プロセッシングユニット(CPU)とメモリの関係によって決まります。主な違いは、命令とデータが共通の経路を共有するか、または独立したチャネルを使用するかにあります。
1. フォン・ノイマン型アーキテクチャ
一般用途のシステム(例: x86-64など)で採用されています。このモデルは統合されたメモリ空間を持ち、CPUは単一のバスを通じてコードとデータの両方へアクセスします。その結果、 フォン・ノイマンバトルネックという遅延が生じます。これは、CPUが命令のフェッチとオペランドへのアクセスの間でバスを多重化しなければならないためです。
2. ハーバード型アーキテクチャ
専用プロセッサや ARMv8-A L1キャッシュ実装でよく見られるデザインでは、物理的に分離されたメモリ領域と信号パスを使用します。これにより、オペコードとデータオペランドを同時にフェッチできるため、処理速度が大幅に向上します。
フローチャート:フォン・ノイマン型アーキテクチャにおけるメモリフェッチサイクル。バスの順次利用を示しています。
3. 構造的統合
現代の高性能コンピューティング(HPC)システムでは、多くの場合 修正されたハーバード型アーキテクチャを採用しています。これは、L1キャッシュレベルでハーバード型のように動作(インストラクションキャッシュとデータキャッシュの分離)することでスピードを最大化し、メインメモリ(RAM)ではフォン・ノイマンモデルを維持することで、プログラミングの柔軟性を確保しています。
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>